package com.jfinal.weixin.util;

import java.io.Serializable;
import java.util.LinkedHashMap;
import java.util.Map;

import com.alibaba.fastjson.JSONObject;

/**
 * 普通ajax调用返回JSON格式结果模型
 * 
 * @author fanjunjian
 * 
 */
public class JsonResultModel implements Serializable {
	private static final long serialVersionUID = 1L;
	/**
	 * 请求执行状态
	 * 200:成功，300:失败，301:超时，500:出错
	 */
	private String code;
	/**
	 * 请求执行反馈信息
	 */
	private String message;
	/**
	 * 返回模型对象
	 */
	private Object data;

	/**
	 * 构造方法
	 */
	public JsonResultModel() {
	}

	/**
	 * 构造方法
	 * 
	 * @param status
	 *            请求执行状态
	 */
	public JsonResultModel(String code) {
		this.code = code;
	}

	/**
	 * 构造方法
	 * 
	 * @param status
	 *            请求执行状态
	 * @param info
	 *            请求执行反馈信息
	 */
	public JsonResultModel(String code, String message) {
		this.code = code;
		this.message = message;
	}

	/**
	 * 构造方法
	 * 
	 * @param status
	 *            请求执行状态
	 * @param info
	 *            请求执行反馈信息
	 * @param data
	 *            返回对象数据(可以是json格式)
	 */
	public JsonResultModel(String code, String message, Object data) {
		this.code = code;
		this.message = message;
		this.data = data;
	}
	

	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}

	public Object getData() {
		return data;
	}

	public void setData(Object data) {
		this.data = data;
	}

	/**
	 * 返回JSON字符串
	 */
	public String toJsonString() {
		Map<String, Object> map = new LinkedHashMap<String, Object>();
		if (!"".equals(this.code) && null != this.code) {
			map.put("code", this.code);
		}
		if (!"".equals(this.message) && null != this.message) {
			map.put("message", this.message);
		}
		if (null != this.data) {
			map.put("data", data);
		}
		return JSONObject.toJSONString(map);
	}

}
